using CodeSaude.Domain.Entities;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.ModelConfiguration;

namespace CodeSaude.Infrastructure.Data.EntityConfig
{
    public class cep_municipioMap : EntityTypeConfiguration<cep_municipio>
    {
        public cep_municipioMap()
        {
            // Primary Key
            this.HasKey(t => t.id_municipio);

            // Properties
            this.Property(t => t.id_municipio)
                .HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);

            this.Property(t => t.uf)
                .IsRequired()
                .HasMaxLength(2);

            this.Property(t => t.municipio)
                .IsRequired()
                .HasMaxLength(144);

            this.Property(t => t.cep)
                .HasMaxLength(50);

            this.Property(t => t.municipio_abrev)
                .HasMaxLength(72);

            this.Property(t => t.tipo_municipio)
                .IsRequired()
                .HasMaxLength(1);

            // Table & Column Mappings
            this.ToTable("cep_municipio");
            this.Property(t => t.id_municipio).HasColumnName("id_municipio");
            this.Property(t => t.uf).HasColumnName("uf");
            this.Property(t => t.municipio).HasColumnName("municipio");
            this.Property(t => t.cep).HasColumnName("cep");
            this.Property(t => t.municipio_abrev).HasColumnName("municipio_abrev");
            this.Property(t => t.tipo_municipio).HasColumnName("tipo_municipio");
        }
    }
}
